#ifndef __Actor_H__
#define __Actor_H__

#include <Ogre.h>
#include <OIS.h>
#include <btBulletDynamicsCommon.h>

#include "GameObject.h"
//#include "RagDoll.h"
#include "BtOgre/BtOgrePG.h"
#include "BtOgre/BtOgreGP.h"
#include "BtOgre/BtOgreExtras.h"

using namespace Ogre;

class Actor : public GameObject, Ogre::FrameListener
{
protected:
	bool mDynamics;

public:
	Actor();
	Actor(SceneManager* sceneMgr);
	Actor(SceneManager* sceneMgr, String name);
	virtual ~Actor();

	virtual void init(Ogre::Root* root);

	// Frame Listener
//	bool frameStarted(const Ogre::FrameEvent &evt);
//	bool frameEnded(const Ogre::FrameEvent &evt);
//	bool frameStarted(const FrameEvent& evt) = 0;
//	bool frameEnded(const FrameEvent& evt) = 0;
		
	void setPosition(const Vector3& pos);
	Vector3 getPosition();

	void init(Real mass);

	void yaw(const Real &angle);

	//    void SuspendDynamics();
	//    void RestoreDynamics();
};

#endif
